Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

rechnen mit php und sql

Diskussion: rechnen mit php und sql im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Moin Hackerboad-Gemeinde, ich hab mal wieder n Problem. Und zwar will ich für die Hörer meines Radios eine Chart-Seite ...

Antwort
Alt 05.09.08, 19:33   #1 (permalink)
 
Registriert seit: 03.08.08
Catarrer Leistung: Facit NTK
Likes: 0
Standard rechnen mit php und sql

Anzeige

Moin Hackerboad-Gemeinde,
ich hab mal wieder n Problem.
Und zwar will ich für die Hörer meines Radios eine Chart-Seite (top 100 oda so) machen, wo sie selber vorschläge einbringen können.

Das ganze funktioniert so:
ich gebe in ein Formular den Interpreten und den Titel ein. Dieser wird dann mit einer Datenbank abgeglichen. Wenn dieser schon vorhanden ist, dann wird in der spalte "vote" der Datenbank bei diesem EIntrag die Zahl um eins erhöht. Is ja ne ganz simple rechenaufgabe... ($var++). Is dieser Titel noch nich vorhanden, wird ein neuer eintrag erstellt und die Zahl bei Vote wird auf 1 gesetzt (=1 voter).

wenn ich mir die Charts anschaue, kann ich auch per link wählen ob mir der gefällt.. dementsprechen wird dann auch $var++ oder $var-- eingesetzt und dann mit "UPDATE ... WHERE ..." der eintrag bearbeitet.

Des mit dem Link funktioniert auch super, aber des mit dem eingeben irgend wie nich... er erkennt zwar, dass ein eintrag vorhanden is, und erstellt keinen neuen, aber er setzt vote nicht +1 (also $var++).

hier mal der betroffene Ausschnitt:

PHP-Code:
[...]



if (
$_REQUEST['action']== "edit") {
  if(isset(
$_POST['action'])) {
  
$titel $_POST['interpret']." - ".$_POST['titel'];
    
$charts=$DB->query("SELECT * FROM ".$db_tab['charts']." WHERE titel='".$titel."' LIMIT 1");
    }
  
  if(isset(
$_POST['send']))  {
    
$charts=$DB->query("SELECT * FROM ".$db_tab['charts']." WHERE titel='".$titel."' LIMIT 1");
    
$vote=$charts['vote'];
    
$if mysql_num_rows($charts);
    
$vote2 $vote++;
    if (
$if 0) {
      
$DB->query("UPDATE ".$db_tab['charts']." SET vote='".$vote2."' WHERE titel='".$titel."'");
    }
    else {
      
$DB->query("INSERT INTO ".$db_tab['charts']." (titel, vote) VALUES ('".$titel."','1')");
     }
   }
   
 eval (
"\$site_body.= \"".getTemplate("charts_edit","")."\";");
}
elseif (
$_REQUEST['action']=="show") {
 
$charts $DB->query("SELECT * FROM ".$db_tab['charts']." ORDER BY 'vote' DESC");  

  for(
$i 1$Export ""$i mysql_num_rows($charts)+1;$i++)
    {
     
   
    
      
$platz $i;
      
$titel $charts['titel'];
    
      eval (
"\$charts_row.= \"".getTemplate("charts_row","")."\";");
    
    }
  eval (
"\$site_body.= \"".getTemplate("charts1","")."\";");
  
}

[...] 
vielleicht findet ihr den fehler.

Gruß Adi
Catarrer ist offline   Mit Zitat antworten
Alt 05.09.08, 19:41   #2 (permalink)
Member of Honour
 
Benutzerbild von easteregg
 
Registriert seit: 14.09.07
easteregg Leistung: Pentium Ieasteregg Leistung: Pentium I
easteregg eine Nachricht über ICQ schicken
Likes: 62
Standard

ohne jetzt auf deinen speziellen fehler einzugehen(habsch grad irgenwdie nich den nerv zu!), würd ich dir noch raten, statt auslesen des counts und anschliesend wieder einfügen das ganze so realisieren:

Code:
UPDATE Table SET col = col + 1 WHERE irgendwas = dies und jenes!
damit sparst du die nen query
__________________
» Flattr mich! - Wenn dir mein Beitrag geholfen hat! «
<| 2 AMD Opterons 2384@ 8x3,2ghz | Tyan S2915 | 10GB | 2x 8800GT | 8400GS | Dell 3008WFP + 2x2007FP |>
easteregg ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 05.09.08, 19:51   #3 (permalink)
Themenstarter
 
Registriert seit: 03.08.08
Catarrer Leistung: Facit NTK
Likes: 0
Standard

den query brauch ich ja sowieso, um zu schauen, ob der eintrag schon vorhanden is (mach ich ja mit mysql_num_rows() )

werd ich ma versuchen... danke für deine schnelle antwort

EDIT: aba is richtig ^^ ein query is überflüssig is mir garned aufgefallen
Catarrer ist offline   Mit Zitat antworten
Alt 05.09.08, 19:52   #4 (permalink)
Member of Honour
 
Benutzerbild von easteregg
 
Registriert seit: 14.09.07
easteregg Leistung: Pentium Ieasteregg Leistung: Pentium I
easteregg eine Nachricht über ICQ schicken
Likes: 62
Standard

wieso, brauchste nicht, entweder der update query bringt bei mysql_affected_rows 1 oder null zurück.
wenn das null is, machste nen insert.

da haste die ganze problematik auf 2 querys reduziert!
__________________
» Flattr mich! - Wenn dir mein Beitrag geholfen hat! «
<| 2 AMD Opterons 2384@ 8x3,2ghz | Tyan S2915 | 10GB | 2x 8800GT | 8400GS | Dell 3008WFP + 2x2007FP |>
easteregg ist offline   Mit Zitat antworten
Alt 05.09.08, 20:00   #5 (permalink)
Member of Honour
 
Benutzerbild von beavisbee
 
Registriert seit: 22.02.07
beavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium III
beavisbee eine Nachricht über ICQ schicken
Likes: 77
Standard

und wenn du einen SELECT-Query machst, wo du nur 1 Feld brauchst, dann ist es wesentlich Datenbank-schonender, wenn du
Code:
SELECT `vote` FROM `".$db_tab['charts']."` WHERE `foo`='bar'
nutzt, anstatt deinem
Code:
SELECT * FROM ...
beavisbee ist offline   Mit Zitat antworten
Alt 05.09.08, 20:05   #6 (permalink)
Themenstarter
 
Registriert seit: 03.08.08
Catarrer Leistung: Facit NTK
Likes: 0
Standard

hmm die idee is gut... da ich noch relativ neu in php bin, hab ich mich mit mysql_affected_rows auseinander gesetzt...

@beavisbee: es werden eh nur 2 daten zurückgegeben und der * war hald für mich weniger schreibarbeit ^^ *lach*

aba wenn mehr zurückgegeben wird und ich so ne abfrage mach, is es wirklich schonender, da hast du recht da verwend ich den * auch ned, auser ich brauch ihn wirklich *g*

greets adi
Catarrer ist offline   Mit Zitat antworten
Alt 06.09.08, 12:09   #7 (permalink)
 
Registriert seit: 12.06.08
skymuss Leistung: Facit NTK
Likes: 0
Standard

------------------------------

Geändert von skymuss (04.06.10 um 09:57 Uhr)
skymuss ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » rechnen mit php und sql
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mit wieviel kann ich für den PC rechnen? nonpretium Kaufberatung 6 28.02.07 12:14
Probleme beim rechnen im Trapez DolphVS Off topic-Zone 7 21.01.07 15:43
Rechnen mit Formulartdaten ? Franzl (Web-) Design und webbasierte Sprachen 2 23.01.06 07:05
[gelöst] Rechnen mit PHP - kein Ergebnis ioda Code Kitchen 7 04.11.05 21:46
vernetztes Rechnen (alá SETI) Scrat Windows 2 12.07.04 11:13


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61