Problem bei MYSQL / PHP

Re: Problem bei MYSQL / PHP

Beitragvon ThaSpeedy » 1. Jun 2010, 17:16

liro hat geschrieben:
ThaSpeedy hat geschrieben::mrgreen:

Ich empfehle dir dringendst (my)sql basics zu lernen, es gibt viele möglichkeiten :mrgreen: UNIQUE ist sicher besste !


Meinst du mich?
Ehh... wenn ja... dann erzähl mal, was ich falsches gesagt haben soll...


Ich find deine idee ne gut lösung und mein dann noch das du mysql lernen solltest??^^ ROFL

das war an megacrack gerichtet^^
I never comment my sourcecode. What's HARD to write must be HARD to read!
Bild
ThaSpeedy
Hobby-Bastler
 
Beiträge: 397
Registriert: 1. Aug 2008, 17:19
Hat Gedankt: 0 time
 Danksagungen: 7 times

Re: Problem bei MYSQL / PHP

Beitragvon megacrack » 2. Jun 2010, 13:23

^^ ja das sollte ich...

Also gibt es immer noch keine (einfache) Lösung?
megacrack
Cheater
 
Beiträge: 63
Registriert: 28. Jun 2008, 20:29
Hat Gedankt: 0 time
 Danksagungen: 0 time

Re: Problem bei MYSQL / PHP

Beitragvon ThaSpeedy » 2. Jun 2010, 15:51

Bitteschön :mrgreen:

MYSQL Statements wie SELECT, FROM, VALUES usw bitte immer gross schreiben, spalten und tabellennamen mit ` ` eingrenzen^^

Wenn du noch fragen hast dann schreib, musste noch an deine Tabellen anpassen!

Gruss Speedy
Code: Alles auswählen
<?php

$query1 = mysql_query('SELECT `user_name` FROM `Tabelle1`');
$query2 = mysql_query('SELECT `user_name` FROM `Tabelle2`');
// array starten
$vorhanden_username_array = array();
// Alle vorhanden Daten einlesen aus tabelle 2
while($vorhanden_username = mysql_fetch_assoc($query2))
{
      $vorhanden_username_array[] = $vorhanden_username['user_name'];
      // Alle vorhandenen namen einlesen und in array machen
}
// Schauen welche Namen da sind
while ($username_aus_tabelle1 = mysql_fetch_assoc($query1)
{
   // wenn der name nicht vorhanden ist im array dann mach den query
   if (!in_array($username_aus_tabelle1['user_name'], $vorhanden_username_array))
   {
      /*
       * JETZT DARFST DU INSERT MACHEN DA NICHT VORHANDEN
       *
       * */
      mysql_query('INSERT INTO `Tabelle2` (`user_name`) VALUES (\''.$username_aus_tabelle1['user_name'].'\')');
   }
}      
?>
I never comment my sourcecode. What's HARD to write must be HARD to read!
Bild
ThaSpeedy
Hobby-Bastler
 
Beiträge: 397
Registriert: 1. Aug 2008, 17:19
Hat Gedankt: 0 time
 Danksagungen: 7 times

Re: Problem bei MYSQL / PHP

Beitragvon Franz » 2. Jun 2010, 18:19

Woraus besteht denn deine Tabelle `level` alles? Nur `user_name` (Primary) oder noch viel mehr?

Jedenfalls würd ich erstmal die Abfrage, wenn doppelte `user_name` in `fusion_users` eingetragen werden können, auf Distinct oder Group By selecten.

Code: Alles auswählen
SELECT DISTINCT `user_name` FROM `fusion_users`


So haste schonmal keine Doppelten zum Eintragen in die Tabelle `level`.

  • Wenn dann deine Tabelle `level` nur aus dem Primary `user_name` besteht, dann reicht folgendes zum syncen:

    Code: Alles auswählen
    INSERT INTO `level` (SELECT DISTINCT `user_name` FROM `fusion_users`)

  • Wenn dann deine Tabelle `level` nicht nur aus dem Primary `user_name` besteht, dann folgendes zum syncen:

    Code: Alles auswählen
    INSERT IGNORE INTO `level` (`user_name`) (SELECT DISTINCT `user_name` FROM `fusion_users`)

Wenn wiederrum Daten geupdated werden sollen, wenn der neue `user_name` neueingetragen würde, aber doppelt wäre, dann anstelle von IGNORE halt ON DUPLICATE KEY UPDATE usw usf.

Ich denke, ein Query reicht hier vollkommen und muss nicht extern verarbeitet werden. Wenn ich das Anliegen jetzt als solches verstanden habe ;)
Benutzeravatar
Franz
Zocker
 
Beiträge: 163
Registriert: 21. Jun 2009, 20:41
Hat Gedankt: 0 time
 Danksagungen: 0 time

Re: Problem bei MYSQL / PHP

Beitragvon megacrack » 2. Jun 2010, 19:05

Danke für die Lösungen, habs aber selber hingekriegt:

Code: Alles auswählen
$ab="SELECT user_name FROM fusion_users";
$ergebnis = mysql_query($ab);
while($row = mysql_fetch_object($ergebnis))
    {
   $rowname=$row->user_name;
   $ab2="INSERT Level (`user_name`,`user_level`) VALUES ('".$rowname."','0')";
   $req=mysql_query($ab2);
   }
megacrack
Cheater
 
Beiträge: 63
Registriert: 28. Jun 2008, 20:29
Hat Gedankt: 0 time
 Danksagungen: 0 time

Re: Problem bei MYSQL / PHP

Beitragvon Franz » 2. Jun 2010, 19:17

Wie gesagt, ich würds lieber nur in SQL realisieren. Extra noch extern, verbraucht insgesamt viel mehr Last für den Server.

Was ich aber vergaß:

`user_name` in der Tabelle `level` als UNIQUE INDEX verwalten, wenn nicht PRIMARY
`user_level` DEFAULT 0

/* edit
*
* Deine Anweisung fängt keine Doppelten ab, wenn `user_name` kein UNIQUE oder es kommt zu Fehlern und Query bricht ab.
*
*/
Benutzeravatar
Franz
Zocker
 
Beiträge: 163
Registriert: 21. Jun 2009, 20:41
Hat Gedankt: 0 time
 Danksagungen: 0 time

Re: Problem bei MYSQL / PHP

Beitragvon megacrack » 2. Jun 2010, 21:01

ja, hab die spalte auf primary gesetzt...
megacrack
Cheater
 
Beiträge: 63
Registriert: 28. Jun 2008, 20:29
Hat Gedankt: 0 time
 Danksagungen: 0 time

Vorherige

Zurück zu Programmierung



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron